package cn.tedu.net.collection.oop;
//本类用于测试抽象类入门案例
public class Test2_AbstarctDome {
    public static void main(String[] args) {
        Animal a = new Pig();
        a.eat();//调用抽象父类的普通方法
        a.fly();//调用抽象父类的方法,子类执行
//        Animal a1 = new Animal();  抽象类不能创建对象但是可以使用静态
    }

}
 abstract  class Animal{
    public void eat(){
        System.out.println("吃啥都行");
    }
    public void play(){
        System.out.println("玩啥都行");
    }
    //没有方法体的方法叫做抽象方法,被关键字abstract修饰,抽象方法必须在抽象类里面,抽象类不一定非要有抽象方法
    public abstract void fly();
    public abstract void fly2();
}
//当子类继承了抽象父类后 要么变成一个抽象子类 要么实现父类的抽象方法
//abstract  class Pig extends Animal{}
class Pig extends Animal{
    @Override
    public void fly() {
        System.out.println("你把你爸的债还清了,你家的猪终于能飞了");
    }

    @Override
    public void fly2() {
        System.out.println("父类的第二个抽象方法也实现了");
    }
}
